#ifndef __SYSTEM_H__
#define __SYSTEM_H__

// 引用头文件
#include "head.h"

// 定义系统结构体
typedef struct FlightSystem
{
    F_list *Flight_list;   // 航班信息
    U_list *ADMIN_USER;    // 管理员账户信息
    U_list *REGULAR_USER;  // 普通用户信息
    U_list *SILVER_USER;   // 银卡会员信息 (9折)
    U_list *GOLD_USER;     // 金卡会员信息 (8折)
    U_list *PLATINUM_USER; // 白金会员信息 (7折)
} FlightSystem;

// 系统初始化
FlightSystem Sys_init(void);

// 主菜单
void MENU(FlightSystem Flight_Sys);

// 系统登录
U_data Sys_log_in(FlightSystem Flight_sys);

// 普通用户注册
void reg(U_list *list);

// 系统菜单
void Sys_menu(FlightSystem Flight_Sys, U_data log_data);

// 管理员 设定航班
void set_flight(F_list *Flight_list, U_data log_data);

// 管理员 修改航班
void change_flight(F_list *Flight_list, U_data log_data);

// 管理员 增加超级用户
void add_admim(U_list *user_list, U_data log_data);

// 用户 购票退票
void ticket_transaction(F_list *Flight_list, U_list *user_list, U_data log_data, const char *file_name);
// 用户 购票
void buy_ticket(F_list *Flight_list, U_list *user_list, U_data log_data, const char *file_name);
// 用户 退票
void refund_ticket(F_list *Flight_list, U_list *user_list, U_data log_data, const char *file_name);

// 查看订单
void find_order(U_list *user_list, U_data log_data);

// 用户 余额充值
void balance_recharge(FlightSystem Flight_Sys, U_list *user_list, U_data log_data, const char *file_name);

// 用户 查看航班
void check_flights(F_list *Flight_list, U_data log_data);

// 用户 修改密码
void change_pwd(U_list *user_list, U_data log_data, const char *file_name);

// 修改航班信息分支 修改航班单条信息
void change(F_list *Flight_list, U_data log_data, F_node *ptr, int flag);

#endif // __SYSTEM_H__
